package ejbs;

import java.util.ArrayList;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import dto.*;
import entities.*;

@Stateless
public class FacadeBean implements Facade {

	@EJB
	private AdministradorCotizaciones admCotizaciones;
	
	@EJB
	private AdministradorCompras admCompras;
	
	@EJB
	private AdministradorArticulos admArticulos;
	
	@EJB
	private DtoFactory dtoFactory;
    
	public ArticuloDto obtenerArticulo(String codigoArticulo)
	{
		Articulo articulo = admArticulos.obtenerArticulo(codigoArticulo);
		
		ArticuloDto articuloDto = dtoFactory.obtenerDto(articulo);
		
		return articuloDto;
	}
	
	public ArrayList<ArticuloDto> obtenerArticulos() 
	{
		ArrayList<Articulo> articulos = admArticulos.obtenerArticulos();
		
		ArrayList<ArticuloDto> articulosDto = dtoFactory.obtenerDtoArticulos(articulos);
		
		return articulosDto;
	}

	public CotizacionDto cotizar(SolicitudCotizacionDto solicitudCotizacionDto)
    {
    	SolicitudCotizacion solicitudCotizacion = dtoFactory.obtenerEntity(solicitudCotizacionDto);
    	
    	Cotizacion cotizacion = admCotizaciones.cotizar(solicitudCotizacion);

    	CotizacionDto cotizacionDto = dtoFactory.obtenerDto(cotizacion);
    	
    	return cotizacionDto;
    }
    
    public ArrayList<CotizacionDto> obtenerCotizaciones()
    {
    	ArrayList<Cotizacion> cotizaciones = admCotizaciones.obtenerCotizaciones();
    	
    	ArrayList<CotizacionDto> cotizacionesDto = dtoFactory.obtenerDtoCotizaciones(cotizaciones);
    	
    	return cotizacionesDto;
    }
    
    public CotizacionDto obtenerUltimaCotizacionArticulo(String codigoArticulo)
    {
    	Cotizacion ultimaCotizacionArticulo = admCotizaciones.obtenerUltimaCotizacion(codigoArticulo);
    	
    	CotizacionDto ultimaCotizacionArticuloDto = dtoFactory.obtenerDto(ultimaCotizacionArticulo);
    	
    	return ultimaCotizacionArticuloDto;
    }
    
    public void solicitarCompra(SolicitudCompraDto solicitudCompraDto)
    {
    	SolicitudCompra solicitudCompra = dtoFactory.obtenerEntity(solicitudCompraDto);
    		
		admCompras.solicitarCompra(solicitudCompra);
    }
}
